perm filename ALPH.FAI[XX,LCS] blob sn#271079 filedate 1977-03-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE ALPHA
C00019 ENDMK
C⊗;
	TITLE ALPHA
	ENTRY ALPHA
	INTERNAL NFONT
	EXTERNAL .COMM.,STF,POSI,PLTR,FONT,SPACER,PNUM,ROFF
	EXTERNAL ITMSUB,RHORZ,CLEFS,KSIG,LINES,ALF,OLDTOP
DEFINE JTR<.COMM.+=20> ↔ DEFINE RB<.COMM.+=43> ↔DEFINE RW<.COMM.+=42>  
DEFINE RX<.COMM.+=40> ↔DEFINE RY<.COMM.+=39> ↔ DEFINE R<.COMM.+=23>
DEFINE RF<.COMM.+=18> ↔ DEFINE JR3<.COMM.+=27>↔	DEFINE IFNT<.COMM.+=36> 
DEFINE RZ<.COMM.+=41>↔ DEFINE JX<.COMM.+=34> ↔ DEFINE R8<.COMM.+=9>
DEFINE J8<.COMM.+=29>
FILL:	0
NFONT:	ASCII/BDR40/		;WILL BE CURRENT FONT NAME
FNAME:	ASCII/PRIM0/		;POSSIBLE FONT NAMES - FOR NOW.
	ASCII/BDR40/
	ASCII/BDI40/
	ASCII/BDL40/		;BDR LIGHT-FACE

ALPHA:	0
	MOVE .COMM.+1		;JA
	CAIN 7	
	JRST AL20		;JA=7 IS FOR TRILLS, ETC.
	MOVEI =99
	MOVEM JTR
	MOVE .COMM.+6
	CAMGE [100.0]
	JRST .+3
	MOVN [100.0]
	FADRM .COMM.+6		;IF(R5.GE.100)R5=R5-100
	MOVN 1,FONT		;SHI=ITAL., SHP=PRIM, SHO=BDR
	JUMPLE 1,ALX54		;IF(JFONT.GE.0)GO TO ALX54
	MOVEI 1
	MOVEM FONT		;JFONT=1
	MOVE FNAME-1(1)		;GET THE DESIRED FONT NAME
	JRST AL54-1		; PUT IT IN NR
ALX54:	MOVE NFONT
	CAME FNAME
	CAMN FNAME+2
	JRST AL54
	MOVE FNAME+1		;DEFAULT FONT IS BDR40
	MOVEM NFONT
AL54:	MOVE [19.7]
	FMPR .COMM.+6
	FMPR STF+=8
	MOVEM R		;OR JUST LEAVE IN AC0

	FLTR 1,.COMM.+=24		;MOVE 1,.COMM.+=24	;J3
;;	TLC 1,232000
;;	FADR 1,1
	MOVEM 1,RB		; OR LEAVE IN AC1
	MOVE 2,.COMM.+5
	MOVEM 2,RW		; OR LEAVE IN AC2
	SETZM .COMM.+=30	;J9=0
	MOVEI 15,4
AL50X:	SETOM NXZ#		; THE BIG LOOP
	MOVEM 15,K#
	MOVE 3,.COMM.+3(15)	;RZ IS AC3
	FADR 3,[0.2]
	KIFIX 0,3		;JSA 16,IFIX
				;	JUMP 3
	MOVEM JY#
	MOVE 4,[=1000000]	; 4 IS JX
	MOVEM 4,JX
	MOVEI 14,1		; LA
AL53X:	MOVEM 14,LA#
	MOVE JY
	IDIV JX
	MOVEM J5X#
	FLTR 2,.COMM.+=24		;MOVE 2,.COMM.+=24	;R3=J3
					;	TLC 2,232000
					;	FADR 2,2
	MOVEM 2,.COMM.+4
	CAIN =99
	JRST AL55
AL73:	SKIPL KFNT#
	JRST .+3
	MOVEI 2,1
	MOVEM 2,IFNT
	CAIGE =70
	JRST AL72
	SETOM KFNT
	SETOM IFNT
	SUBI =60
	MOVEM .COMM.+=26	; J5

AL72:	CAIGE =48
	JRST AL1

	CAIN =48	; 48=BDL  LIGHT-FACE FONT
	JRST BDL
	CAIG =49
	JRST AL72X
	CAIN =50
	JRST AL2
	CAIN =51
	JRST AL3
	CAIN =52
	JRST AL9
	CAIN =53
	JRST AL4
	CAIN =54
	JRST AL5
AL72X:	CAILE =55
	JRST AL10
	MOVEI =36  ;J5=36 LINE 6200 IN ALPHA.F4 11/3/76
	MOVE 2,[2.9]
	FMPR 2,.COMM.+6		;R4=R4+2.9*R5
	FADRM 2,.COMM.+5	; R4
	JRST AL1

AL3:	MOVE 2,FNAME+2        	; CODE 51
	SKIPA

AL2:	MOVE 2,FNAME+1   	; CODE 50
	SKIPGE FONT
AL9:	MOVE 2,FNAME          	; CODE 52
	MOVEM 2,NFONT
	JRST AL11
BDL:	MOVE 2,FNAME+3		;CODE 53  BDR LIGHT-FACE
	JRST AL2+1

AL4:	MOVNI 2,2	;FILL=-2 FOR NO FILLER WHEN PRINTING ********
	MOVEM 2,FILL      	;FILL WAS EQUIV. TO RJQ(19)
	JRST AL11

AL5:	SETZM FILL	;****** DANGER ****************
	JRST AL11	;MUST BE RESET IF 'NOFILL' WAS USED ***********

AL10:	ADDI 6
	MOVE 2,NFONT
	MOVEM 2,NRX#
	SETZM NXZ#
	MOVE 2,FNAME+1
	MOVEM 2,NFONT
	MOVE 2,FONT
	MOVEM 2,NJF#
	SETOM FONT		; JFONT

AL1:	MOVEM .COMM.+=26	;PUT AWAY J5
	JSA 16,SPACER
	JUMP .COMM.+=26
        JUMP IFNT
	JUMP RB
	JUMP R
;;	MOVE .COMM.+=26		; PUT J5 BACK INTO AC0
	CAILE =60
	JRST AL71
	CAIN =47
	JRST AL6
	CAIL =47
	JRST AL11
	SKIPE 2,.COMM.+=12		; LABEL 7 IN ALPHA.F4
	JRST AL79
	SKIPG FONT
	JRST AL78
	JRST AL77
AL79:	MOVEM 2,.COMM.+=10		; R9
	SETOM .COMM.+=30	;J9=-1
	JRST AL77
AL277:	MOVE 2,FNAME		;IF(NFONT.NE.'PRIM0')GO TO 70
	CAME 2,NFONT
	JRST AL70
	SKIPGE IFNT
	CAIGE =10
	JRST AL30
	JRST AL71

AL177:	ADDI =22	   ;J5=J5+22   (=62 )=63 IN BDI  (BDI46)
	MOVEM .COMM.+=26
	MOVE NFONT 		;SAVE OLD FILE NAME
	MOVEM NRX
	MOVE FNAME+2		;BDI40
	MOVEM NFONT
	MOVE FONT
	MOVEM NJF		;SAVE FONT FLAG
	SETZM NXZ	;FLAG TO GET BACK RIGHT FLAGS BEFORE AL30
	JRST AL71

AL70:	CAILE =9
	SKIPL IFNT	;IFNT IS .COMM.+=36
	JRST AL71
	ADDI =26
	MOVEM .COMM.+=26	; J5

AL71:	MOVE 2,.COMM.+7
	MOVEM 2,RX
	MOVE 2,[0.28]
	FMPR 2,.COMM.+6
	MOVEM 2,.COMM.+7
	MOVE 3,.COMM.+=8
	MOVEM 3,RY
	MOVEM 2,.COMM.+=8
	MOVE 2,R8
	MOVEM 2,RZ		; LINE 11400 IN ALPHA.F4
	MOVE 2,[-2.1]
	FADRM 2,.COMM.+5
 	MOVE 2,FILL
	MOVEM 2,J8
	MOVE 2,NFONT
	MOVEM 2,.COMM.+=11	; NRJ IS EQUIV TO R10
	MOVEI 2,=12
	MOVEM 2,.COMM.+1
	SETZM R8		;TO AVOID CLEFS THICKENER
	JSA 16,CLEFS
	MOVE 2,RX
	MOVEM 2,.COMM.+7
	MOVE 2,RY
	MOVEM 2,.COMM.+=8
	MOVE 2,RZ
	MOVEM 2,R8
	SKIPGE NXZ
	JRST AL6
	MOVE 2,NRX
	MOVEM 2,NFONT
	MOVE 2,NJF
	MOVEM 2,FONT
	JRST AL6

AL78:	SKIPL PLTR		;IF(PLTR.GE.0)GO TO 30
	JRST AL30
AL77:	CAIGE =36		;IF(J5.LT.36)GO TO 277
	JRST AL277
	CAIE =40		; A LEFT PARENTH?
	CAIN =41		; A RIGHT  "
	JRST AL177
AL30:	SETZM .COMM.+=28	;J7=0
	MOVE 2,.COMM.+6
	MOVEM 2,.COMM.+7
	JSA 16,PNUM
AL6:	JSA 16,ROFF
	JUMP RB
	KIFIX 0,0		;MOVE 2,
				;	JSA 16,IFIX
				;	JUMP 2
	MOVEM .COMM.+=24	;J3=ROFF(RB)
	MOVE 2,RW
	MOVEM 2,.COMM.+5
AL11:	MOVN 2,J5X
	IMUL 2,JX
	ADDM 2,JY
AL53:	MOVE 2,JX
	IDIVI 2,=100
	MOVEM 2,JX
	MOVE 14,LA
	CAIGE 14,4
	AOJA 14,AL53X

AL50:	MOVE 15,K
	CAIGE 15,6
	AOJA 15,AL50X
AL55:	MOVE 2,JTR
	CAIE 2,=99
	JRST AL52
	MOVE NFONT
	MOVEM SAVFNT
	JRST AL100

AL20:	MOVE .COMM.+7	; FOR TRILLS, ETC.
	MOVEM RF
	MOVE NFONT
	MOVEM SAVFNT#	;SAVE THE FONT NAME, RETURN IT AT END.
	MOVE .COMM.+=28		; J7 IS IN AC0
	CAIG 1
	JRST AL200
	CAIL =8
	JRST AL201

	MOVE 2,R8
	MOVEM 2,RW
	MOVE 2,.COMM.+4
	MOVEM 2,RB
	MOVEM NFONT	; NFONT=J7
	MOVE 2,.COMM.+=26
	MOVEM 2,JY
	MOVE 2,.COMM.+=10
	JUMPN 2,.+3
	MOVE 2,[1.0]
	MOVEM 2,.COMM.+=10
	MOVEM 2,RY
	FMPR 2,STF+=8
	FMPR 2,[23.84]
	MOVEM 2,RX
	MOVE 2,[0.45]
	FMPR 2,RY
	MOVEM 2,.COMM.+7
	SETZM .COMM.+=30	; J9=0  LINE 16500
	MOVEI 2,=18
	MOVEM 2,.COMM.+=26
	MOVEI 2,3
	MOVEM 2,.COMM.+1	;JA=3
	SETZM .COMM.+6
	SETZM .COMM.+=8
	MOVN 2,[6.0]
	FADRM 2,.COMM.+5	;R4=R4-6   PUTS PED MARK BELOW STF.
	SETZM R8        	;R8=0  NEEDED IN CLEFS.
	JSA 16,CLEFS

	SKIPN 1,JY
	JRST AL222
	MOVN 2,[1.0]
	MOVEM 2,R8	   	; R8=-1
	MOVEI 2,=19
	MOVEM 2,.COMM.+=26	; J5=19
	CAIGE 1,=100
	JRST AL203
	SUBI 1,=100
	MOVEM 1,JY
	JSA 16,CLEFS
AL203:	MOVE 2,RB
	FADR 2,RX
	MOVEM 2,.COMM.+4
	MOVE JY
	CAIGE =10
	JRST AL204
	SUBI =10
	MOVEM JY
	JSA 16,CLEFS
AL204:	MOVE 2,RB
	FADR 2,RX
	FADR 2,RX	; R3=RB+RX+RX
	MOVEM 2,.COMM.+4
	SKIPE JY
	JSA 16,CLEFS

AL222:	MOVE NFONT
	CAIN 2
	JRST TRLEND
	SKIPN 2,RW
	JRST ALX
	FMPR 2,[5.96]
	FSBR 2,RB
	MOVNM 2,.COMM.+4
ALX:	MOVE 2,POSI+=9		;RX=POS
	MOVEM 2,RX
	MOVE 2,RF
	MOVEM 2,.COMM.+=7
	MOVE 2,[3.0]
	FADRB 2,.COMM.+5
	MOVEM 2,.COMM.+6	;R5=R4
	SETZM .COMM.+=28
	SETZM .COMM.+=8
	SETZM R8
	SETZM .COMM.+=11	; R10=0
AL206:	JSA 16,ITMSUB
	MOVE NFONT
	CAIN 4
	JRST TRLEND
	MOVSI 204500		;10.0
	FMPR RY			;*RSTJ2*R9
	FMPR STF+=8    ;THIS WILL BE VERTICAL PART OF BRACK. END.
	FADRM OLDTOP		;* THE Y COORD. FROM LAST 'LINES' CALL
	JSA 16,LINES
	JUMP ALF+=10		;THE LAST X COORD. TO 'LINES'
	JUMP OLDTOP		; Y
	JUMP [2]	; IF CHANGES ARE MADE IN ITMSUB THIS IS WRECKED!!
;;;	MOVE 2,RX
;;;	MOVEM 2,POSI+=9	;POS=RX
;;;	JSA 16,RHORZ
;;;	JUMP RF
;;;	MOVE 3,
;;;	JSA 16,ROFF
;;;	JUMP 3
;;;	MOVEM .COMM.+4		;R3=ROFF(RHORZ(RF))
;;;	MOVE 2,[1.4]
;;;	FMPR 2,RY
;;;	FADRM 2,.COMM.+6
;;;	JSA 16,ITMSUB
	JRST TRLEND

AL202:	MOVE 7,[47717088.0]	; FOR 8VA BASSA
	MOVE 2,[88709999.0]
	MOVEM 2,R8
	MOVE 10,[138.0]
	JRST AL214-1

AL201:	SKIPN 2,.COMM.+6		;CALL NOZERO(R5)
	MOVE 2,[1.0]
	MOVEM 2,.COMM.+6
	MOVE .COMM.+=28
	CAIN =15
	JRST AL205
	MOVE 10,[47.0]
	MOVE 7,[99999999.0]
	MOVE 6,[51089170.0]
AL214:	MOVEM 10,RR10#
	MOVE 2,.COMM.+6
	FMPR 2,STF+=8		;RR5 IS AC2
;;;	MOVEM 2,RR5#
	FMPR 10,2	;AC10 WILL BE RR3
	FADR 10,.COMM.+4
	MOVEM 10,RR3#
	SETOM JTR
	MOVE 2,.COMM.+=28
	MOVEM 2,.COMM.+=25	;J4=J7
	MOVE 2,J8
	MOVEM 2,.COMM.+=31	;J10=J8
	JRST AL212

AL205:	MOVE 6,[51010582.0]
	MOVE 7,[70999999.0]
	MOVE 10,[56.0]
	JRST AL214

AL213:	MOVE 2,[1.8]
	FMPR 2,.COMM.+6		; WAS → FMPR 2,RR5
	MOVEM 2,R8
	SETZM .COMM.+=10 
	MOVE 2,RR3
	MOVEM 2,.COMM.+4
	MOVE 2,RF
	MOVEM 2,.COMM.+7
	MOVE 2,[0.7]
	FMPR 2,STF+=8
	FADRB 2,.COMM.+5
	MOVEM 2,.COMM.+6
;;	MOVE 2,.COMM.+=25	;J5=J4  (NO LONGER NEEDED]
;;	MOVEM 2,.COMM.+=26	
	SETOM .COMM.+=32	;J11=-1
	SKIPGE .COMM.+=25
	MOVNS .COMM.+=32	;IF(J4)J11=-J11
	SKIPE .COMM.+=31	;IF(J10.NE.)J11=0
	SETZM .COMM.+=32
	MOVEI 2,1
	MOVEM 2,.COMM.+=28
	SETZM .COMM.+=31	;J10=0
	JSA 16,ITMSUB
	JRST TRLEND

AL200:	MOVE 2,.COMM.+6
	JUMPN 2,.+3
	MOVE 2,[1.0]
	MOVEM 2,.COMM.+6
	MOVN 4,.COMM.+=28	;IF(J7.EQ.-8)GO TO 202
	CAIN 4,=8
	JRST AL202
	MOVEM 2,RR10
	MOVE 2,[6.0]
	FMPR 2,STF+=8
	KIFIX 0,2		;IFIX
	ADDB .COMM.+=24		;J3=J3+6*RSTJ2
	MOVEM JR3
	MOVE 6,[51898799.0]
	MOVE 7,[99999999.0]
	MOVNM 4,JTR	; -J7 WAS IN AC4
AL212:	MOVEM 6,.COMM.+=7
	MOVEM 7,.COMM.+=8
	MOVE 2,[0.8]
	FMPRM 2,.COMM.+6
	JRST AL54

AL52:	SKIPE JTR
	JRST AL100
	FLTR 3,JR3		;FLOAT JR3
	MOVE 2,[20.0]
	FMPR 2,STF+=8
	FMPR 2,RR10
	FADR 2,3
	MOVEM 2,.COMM.+4
	MOVEI 4
	MOVEM .COMM.+1
	MOVEI 2
	MOVNM .COMM.+=28
	MOVE RF
	MOVEM .COMM.+7
	MOVE [0.7]
	FMPR RR10
	MOVEM .COMM.+=10
	MOVE [0.9]
	FMPR RR10
	MOVEM R8
	SETZM .COMM.+=31
	SKIPGE PLTR
	AOS .COMM.+=31
	JSA 16,ITMSUB
AL100:	SKIPGE JTR
	JRST AL213
	SKIPL KFNT
	JRST .+3
	MOVEI 1
	MOVEM IFNT
	SETZM KFNT
TRLEND:	MOVE SAVFNT	;GET BACK ORIGINAL FONT NAME
	MOVEM NFONT
	JRA 16,(16)	;END

SPACER:	0	;CALL SPACERR(J5,IFNT,RB,R)
	MOVE @(16)	; J5 FOR NOW
	CAILE =47
	JRST SP10
	CAIG =9
	JRST SP117
	CAIGE =36
	JRST SP10
SP117:	MOVE 3,[1.0]		; AC3 IS RSX
	SKIPGE  @1(16)	;IFNT FOR NOW
	MOVE 3,[0.9]
	JRST SP3

SP10:	CAIGE =47
	JRST SP5
	CAIN =52
	JRST SP14
;;;	CAIE =48	;OLD UPPER-LOWER CASE NUMS.  48,49
;;;	JRST .+3
;;;	MOVEI 2,1
;;;	MOVEM 2,@1(16)		;IFNT
;;;	CAIN =49
;;;	SETOM @1(16)
	CAIGE =55
	JRA 16,4(16)
	JRST SP5

SP14:	SETZM @1(16)	
	MOVEI 2,=10
	MOVEM 2,.COMM.+1		;JA=10
	JRA 16,4(16)

SP5:	MOVE 3,[1.08]
	SKIPGE @1(16)
	MOVE 3,[0.96]
	CAIN =22
	JRST SP277
	CAIE =32
	JRST SP3
SP277:	FMPR 3,[1.12]		;3 IS RSX
SP3:	CAIGE =36
	CAIN 1
	JRST SP21
	CAIE =18
	CAIN =19
	JRST SP21
	SKIPL @1(16)
	JRST SP4
	CAIE =15	; NEXT FOR LOWER CASE SPACING
	CAIN =21
	JRST SP21
	CAIE =29
	JRST SP4
SP21:	CAIE =47
	FMPR 3,[0.68]	;SPACER FOR A BLANK
SP4:	FMPR 3,@3(16)	;RB=RB+R*RSX
	FADRM 3,@2(16)
	JRA 16,4(16)
	END